编写稍大一点的程序时一般都会将代码模块化。在 Node.js 中,一般将代码合理拆分到不同的 JavaScript 文件中。为了让这些文件可以相互调用, Node.js 提供了一个简单的模块系统。模块是 Node.js 程序的基本组成部分,文件和模块是一一对应的。换言之,每一个文件就是一个模块,文件路径就是模块名。
在编写模块时, Node.js 提供了3 个很有用的函数或对象: exports 对象、 require() 函数、 module 对象。
exports 对象是当前模块的导出对象,用于导出模块的公有方法和属性。
exports.hello = function () {
console.log('Hello World!');
};
require() 函数用于在当前模块中加载和使用别的模块。它的使用方法是传入一个模块名,返回一个该模块导出的对象或方法。模块名可使用相对路径(以 ./ 开头)或者是绝对路径(以/ 开头)。另外,模块名中的 .js 扩展名可以省略。
module 对象相当于当前文件的上下文,用户通过 module 对象可以访问到当前模块的内容。 module 对象一般与 exports 对象联合使用,导出当前模块的内容。